package com.link.base.base.fund.service;

import com.link.base.base.fund.model.BillDetailModel;
import com.link.base.base.fund.model.DealerTransactionDetail;
import com.link.core.basic.service.BasicService;

import java.util.List;
/**
 * Copyright  hande Company. All Rights Reserved.
 *
 * @author  unknwon
 * @date:   2018/11/12 10:13
 * @version 1.0
 */

public interface DealerTransactionDetailService extends BasicService<DealerTransactionDetail> {

    /**
     * <p>根据期间id，客户id，查询交易明细，attr1 期间id</p>
     *
     * @author yrf
     * @param detail
     * @return
     */
    public List<DealerTransactionDetail> queryByPeriod(DealerTransactionDetail detail);

    /***
     * 查询关联企业下指定条件的交易明细
     * @param billDetailModel
     * @return list 列表
     * @throws Exception
     */
    public List<BillDetailModel> queryAllByMultiCond(BillDetailModel billDetailModel) throws Exception;

    /**
     * 通过客户和期间值查询交易明细
     * @param billDetailModel
     * @return list 列表
     * @throws Exception
     */
    public List<BillDetailModel> queryAllByPerAndAccnt(BillDetailModel billDetailModel) throws Exception;

    /**
     * 查询交易余额
     *
     * @param actionType  操作类型
     * @param accntId     操作客户
     * @param dealerAccntType  资金账户类型
     * @param periodStartDate  开始期间
     * @param periodEndDate  结束期间
     * @param sourceTypes    排除的交易类型集合
     * @return billDetailModel 实例
     * @throws Exception
     */
    public BillDetailModel queryBalanceByPerAndAccnt(String actionType,Long accntId,
                                                     String dealerAccntType,String periodStartDate,
                                                     String periodEndDate,List<String> sourceTypes) throws Exception;

}
